<template>
  <!-- <RouterView /> -->

  <el-button @click="fn1">测试</el-button>
</template>

<script>
import axios from "axios";

axios.interceptors.request.use((config) => {
  console.log("config", config);

  // return config

  // 返回一个新的 Promise 就能阻止请求发出
  return new Promise((resolve) => {
    setTimeout(() => {
      // 让之前的请求返回
      resolve(config);
    }, 2000);
  });
});

export default {
  methods: {
    fn1() {
      axios
        .get("/api/admin/base/open/captcha")

        .then((response) => {
          console.log("response", response);
        });
      // new Promise((resolve) => {
      //   resolve("张三");
      // })
      //   .then((value) => {
      //     console.log("then1", value);
      //     // 返回一个普通值，后续就执行
      //     // return value + "~";
      //     // 返回一个 Promise, 后续会等待该Promise 完成
      //     return new Promise((resolve) => {
      //       setTimeout(() => {
      //         resolve(value + "~");
      //       }, 2000);
      //     });
      //   })
      //   .then((value) => {
      //     console.log("then2", value);
      //   });
    },
  },
};
</script>

<!-- <script>
const axios = {
  // 用于存储拦截器
  interceptor: null,

  get(params) {
    return new Promise((resolve) => {
      // ...
      setTimeout(() => {
        // 要将 interceptor 里面的拦截器方法嗲用，获取结果
        if (this.interceptor) {
          const value = this.interceptor(params);
          resolve(value);
        } else {
          resolve(params);
        }
      }, 1000);
    });
  },

  // 拦截器
  use(interceptor) {
    this.interceptor = interceptor;
  },
};

export default {
  methods: {
    fn1() {
      axios.use((config) => {
        return config + "~";
      });

      axios.get("张三").then((value) => {
        console.log("value", value);
      });

      axios.get("里斯").then((value) => {
        console.log("value", value);
      });
    },
  },
};
</script> -->

<style lang="scss">
// 不加 scoped 让其是全局样式

// 引入全局清理样式
@import "normalize.css";

html,
body,
#app {
  height: 100%;
}
</style>
